#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN=1005;
const int INF=0x3f3f3f3f;
int s;
int sum[MAXN];
int n,w;
int main(void){
    scanf("%d%d",&n,&w);
    int l=INF;
    int h=0;
    for(int i=1;i<=n;i++){
        scanf("%d",&s);
        sum[i]=sum[i-1]+s;
        //找出这一路上出现的最小人数和最大人数
        l=min(l,sum[i]);
        h=max(h,sum[i]);
    }
    //如果最小人数小于0 说明最终有人下车 所以要保证发车前有l个人
    if(l<0){
        l=-1*l;
    }
    //否则说明最少还是有l人上车，那么只要保证发车前0人即可
    else{
        l=0;
    }
    //w减掉路上最多的上车人数即为发车前的最多人数
    //不知道这里为什么不用考虑负数的情况
    h=w-h;
    int ans=h-l+1;
    if(ans<0){
        printf("0\n");
    }
    else{
        printf("%d\n",ans);
    }
    return 0;
}
